import numpy as np
# 列表和数组的区别
#  异：
#   （1）list中的元素的数据类型可以不一样，数组中的元素的数据类型必须一样
#   （2）list不可以进行四则运算，数组可以进行四则运算
#  同：
#   （1）list和array都可以，根据索引来取其中的元素

a = [1,2,'d']  # <class 'list'>
b = np.array([1,2,2])   # <class 'numpy.ndarray'>
c = np.array([1,3,2])   # <class 'numpy.ndarray'>

# 索引：取元素     +号：拼接   *号：重复拼接    len():长度    min（）：最小值   max（）：最大值
print(a[2]);  print(b[2]) #可以根据索引取x的元素
print(a+a)  # list: + 号将两个list拼接
print(a*5)  # list: * 号将一个list重复拼接（相当于+）
print(b+c)  # array: + 号可以进行四则运算 （数组长度相同，相同位置上的值进行计算）（结果：[2 5 4]）

# in和 not in ： 检测一个元素是非在列表里
print("'d' in a::",'d' in a)

# xxx.index(元素,[起始位置，结束位置])左闭右开 和 xxx.count(元素)  :  获取元素的索引    获取元素的个数

d = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 切片：格式: 列表名[ 起始位置：结束位置：步长] 左闭右开
#      返回一个新的列表
#      步长为负数：从后往前截取
print("列表", d[:8:2])
print("数组", b[:2])

stus = [1,2,3]
print("列表的方法:::添加：删除")
stus.append(4); print("列表末尾添加一个元素：：",stus)
stus.insert(3,9); print("列表指定位置插入一个元素：：",stus)  # 指定位置的元素后移
stus.extend([8,8]); print("列表末尾添加一个列表：：",stus)  # 效果：（1）和append类似    （2）同 stus += [8,8],序列的加法
# xxx.clear（） 情况序列
stus.pop(2);  print("删除索引为2的元素：：",stus) # （1）其余元素前移 （2）返回删除的元素 （3）索引元素为空，删除最后一个
stus.remove(2);  print("删除值为2的元素：：",stus) # （1）其余元素前移 （2）必须有值，多个元素，删除第一个
stus.reverse();  print("反正列表：：",stus)

teas = [1,2,8,4,6,9]
print("列表的方法:::排序")
teas.sort(); print("升序::",teas)  # sort()  默认升序
teas.sort(reverse=True); print("降序：",teas)

peops = [1,2]
print("列表的方法:::遍历")

for elment in peops: # for 循化，每执行—次就会将序列中的一个元素赋值给变量
    print(elment)